perm filename ALBINO[E87,JMC]1 blob sn#843850 filedate 1987-07-29 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	albino[e87,jmc]		Handling albino by reification
C00004 ENDMK
C⊗;
albino[e87,jmc]		Handling albino by reification

normalcolor elephants = gray

∀x. elephant x ⊃ type x = elephants

∀x. hascolor type x ∧ ¬ab17 x ⊃ color x = normalcolor type x

It is elaboration tolerant with respect to the predicate albino,
since we only need add

∀x. albino x ⊃ ab17 x.

	We'll probably also want albinos as a type, though I don't
immediately see how to use it.  This assumes that an object has a unique
type.  Can we improve this?

Second version:

normalcolor elephants = gray

∀x. elephant x ⊃ hastype(x,elephants)

∀x y. hastype(x,y) ∧ ¬ab17(x,y) ⊃ color x = normalcolor y

	Here it is less obvious what to do about the predicate albino.
Maybe we want

∀x y. hastype(x,y) ∧ animaltype y ∧ albino x ⊃ ab17(x,y)

and

animaltype elephants.